Tema anterior: LOAD: Generador de carga

Tema siguiente: MTA: Agente de transporte de correo

SQUID: proxy de SQUID

Última versión: 2.0.2-1

SQUID: Servidor proxy

Vista rápida

Catálogo

Sistema

Categoría

Varios Dispositivos

Volúmenes de usuario

yes

Memoria mín.

96 MB

SO

Linux

Restricciones

no

Preguntas o comentarios

Pregunte en el foro

Descripción general del funcionamiento

SQUID es un dispositivo de proxy hacia delante e inverso de almacenamiento en caché. SQUID actúa como un agente, aceptando las solicitudes HTTP de clientes en su terminal in y pasándolas al servidor apropiado conectado al terminal out. Almacena una copia de los datos devueltos en una memoria y en una memoria caché del disco. Cuando se piden varias veces los mismos datos, se devuelven los datos de la memoria caché al cliente, con lo que se agiliza el acceso y se disminuye la carga del servidor fuente.

SQUID es compatible con dos modos de operación: proxy y acelerador Web.

Modo de proxy

En el modo de proxy, SQUID actúa como proxy hacia delante de memoria caché y normalmente está instalado entre uno o varios clientes e Internet. Conserva copias locales de los datos frecuentemente solicitados y devuelve contenido almacenado en caché cuando es posible; de esa manera, acelera las solicitudes del servicio y reduce el tráfico del ancho de banda.

Modo de acelerador Web

En el modo de acelerador Web, SQUID actúa como proxy inverso de memoria caché y normalmente está instalado frente a uno o varios servidores Web. Todo el tráfico destinado a los servidores Web pasa a través de SQUID. SQUID conserva copias locales de los datos frecuentemente solicitados y devuelve contenido almacenado en caché cuando es posible; de esa manera, disminuye el tiempo de respuesta y la carga del servidor de back-end.

Límite

Recursos

Recurso

Mínimo

Máximo

Predeterminado

Probado

CPU

0,05

2

0,2

2

Memoria

96 MB

4 GB

256 MB

4 GB

Ancho de banda

1 Mbps

2 Gbps

250 Mbps

1,5 Gbps

Requisitos de memoria para SQUID

La cantidad de memoria que necesita SQUID depende del tamaño del volumen de memoria caché y el número de solicitudes simultáneas. SQUID utiliza hasta 10 Megabytes de memoria para indexar 1 Gigabyte de almacenamiento de memoria caché. Así pues, para usar 100 GB del volumen de memoria caché, se requiere 1 GB adicional de memoria. También se utiliza parte de la memoria para servir a cada conexión. SQUID utiliza hasta 20 Megabytes de memoria para servir a 1.000 conexiones simultáneas. Así, si se esperan 5.000 conexiones simultáneas, se debería aumentar la memoria de SQUID en 100 MB.

Importante: Si no hay suficiente memoria disponible, es posible que SQUID no funcione correctamente.

Terminales

Nombre

Dir.

Prot.

Descripción

in

Entrante

HTTP

Acepta solicitudes entrantes.

out

Saliente

HTTP

Envía tráfico fuera hacia los servidores de destino y recibe las respuestas.

log

Saliente

CIFS

Acceso a un sistema de archivos de red basado en CIFS para almacenar registros. El servidor conectado debe permitir inicios de sesión anónimos y debe tener un recurso compartido de lectura/escritura denominado "share". Este terminal se puede dejar desconectado si no se está usando.

mon

Saliente

CCE

Envía estadísticas sobre uso de recursos y rendimiento. Este terminal se puede dejar desconectado si no se usa.

Volúmenes de usuario

Nombre

Descripción

cache

Volumen para almacenar en caché los archivos. Este volumen es obligatorio. El tamaño mínimo de volumen de memoria caché es 100 MB.

Notas:

De acuerdo con las directrices de Squid, aproximadamente un 25 % del volumen de la memoria caché se usa para almacenar el índice, de modo que el volumen de la memoria caché deberá ser un 25 % superior. Por ejemplo, si la memoria caché deberá almacenar objetos de 900 MB, entonces el volumen de la memoria caché deberá tener un tamaño de 1.200 MB (75 % = 900 MB para almacenar objetos en caché y 25 % = 300 MB para los archivos de índice).

Propiedades generales

Nombre

Tipo

Descripción

mode

Cadena

Modo de operación. Los valores válidos son "proxy" o "web_accelerator".
proxy: SQUID funciona en modo de proxy y actúa como un proxy de reenvío con almacenamiento en la memoria caché.
web_accelerator: SQUID funciona en modo de acelerador Web y actúa como un proxy inverso de almacenamiento en memoria caché.
Valor predeterminado: web_accelerator

listen_port

Entero

Puerto para aceptar solicitudes de clientes internos en el modo de proxy o de usuarios de sitio Web externos en el modo web_accelerator.
Valor predeterminado: 80

hostname

Cadena

Nombre de host para utilizar en mensajes de error.
Valor predeterminado: localhost

connect_timeout

Entero

El tiempo de espera en segundos que espera SQUID para recibir la conexión TCP al servidor solicitado. Si se sobrepasa el tiempo de espera, SQUID responde al cliente con un mensaje de error que indica que se ha sobrepasado el tiempo de espera para la conexión.
Valor predeterminado: 30

Registro de propiedades

Nombre

Tipo

Descripción

log_enable

Cadena

Activa o desactiva el registro de acceso.
Valor predeterminado: no

log_filename

Cadena

Nombre de archivo para el registro de acceso, relativo al sistema de archivos accesible mediante el terminal de registro. El nombre de archivo puede incluir una ruta; por ejemplo, un valor de access.log hace que el archivo de registro sea /mnt/log/access.log, mientras que un valor de /proxy_logs/squid1_access.log hace que el archivo de registro sea /mnt/log/proxy_logs/squid1_access.log.
Valor predeterminado: access.log

log_format

Cadena

Formato del registro de acceso.
native: utiliza el formato de registro nativo de SQUID.
httpd: utiliza el formato de registro httpd.
Valor predeterminado: native

Contadores personalizados

El dispositivo SQUID informa sobre los siguientes contadores personalizados a través del terminal "mon".

Nombre del contador SNMP

Nombre del contador

Descripción

SQUID-MIB::cacheSysVMsize

SysVMsize

Tamaño de caché en la memoria en kB.

SQUID-MIB::cacheSysStorage

SysStorage

Tamaño de caché en el disco en kB.

SQUID-MIB::cacheUptime

Uptime

Tiempo de actividad de SQUID en graduaciones de tiempo (1/100 de segundo).

SQUID-MIB::cacheSysPageFaults

SysPageFaults

Errores en la página con E/S física.

SQUID-MIB::cacheSysNumReads

SysNumReads

Número de lecturas de E/S HTTP.

SQUID-MIB::cacheMemUsage

MemUsage

Memoria total empleada por SQUID en kB.

SQUID-MIB::cacheCpuTime

CpuTime

Cantidad de segundos de CPU consumidos.

SQUID-MIB::cacheCpuUsage

CpuUsage

El porcentaje de uso de la CPU.

SQUID-MIB::cacheMaxResSize

MaxResSize

Tamaño residente máximo en kB.

SQUID-MIB::cacheNumObjCount

NumObjCount

Número de objetos almacenados en la memoria caché.

SQUID-MIB::cacheCurrentUnlinkRequests

CurrentUnlinkRequests

Solicitudes entregadas a unlinkd.

SQUID-MIB::cacheCurrentUnusedFDescrCnt

CurrentUnusedFDescrCnt

Número disponible de descriptores de archivo.

SQUID-MIB::cacheCurrentResFileDescrCnt

CurrentResFileDescrCnt

Número reservado de descriptores de archivo.

SQUID-MIB::cacheCurrentFileDescrCnt

CurrentFileDescrCnt

Número de descriptores de archivo en uso.

SQUID-MIB::cacheCurrentFileDescrMax

CurrentFileDescrMax

Número máximo de descriptores de archivo en uso.

SQUID-MIB::cacheProtoClientHttpRequests

ProtoClientHttpRequests

Número de solicitudes de HTTP recibidas.

SQUID-MIB::cacheHttpHits

HttpHits

Número de aciertos HTTP en la memoria caché.

SQUID-MIB::cacheHttpErrors

HttpErrors

Número de errores HTTP en la memoria caché.

SQUID-MIB::cacheHttpInKb

HttpInKb

Tráfico HTTP recibido, en kilobytes.

SQUID-MIB::cacheHttpOutKb

HttpOutKb

Tráfico HTTP enviado, en kilobytes.

SQUID-MIB::cacheServerRequests

ServerRequests

Número de solicitudes del cliente para el servidor de memoria caché.

SQUID-MIB::cacheServerErrors

ServerErrors

Todos los errores para el servidor de memoria caché a partir de solicitudes de cliente.

SQUID-MIB::cacheServerInKb

ServerInKb

Tráfico de entrada de servidores, en kilobytes.

SQUID-MIB::cacheServerOutKb

ServerOutKb

Tráfico saliente a servidores, en kilobytes.

SQUID-MIB::cacheClients

Clients

Número de clientes con acceso a la memoria caché.

SQUID-MIB::cacheHttpAllSvcTime.1

HttpAllSvcTime1

Tiempo de CPU consumido para procesamiento de solicitudes HTTP (durante el último minuto), en segundos.

SQUID-MIB::cacheHttpAllSvcTime.5

HttpAllSvcTime5

Tiempo de CPU consumido para procesamiento de solicitudes HTTP (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheHttpAllSvcTime.60

HttpAllSvcTime60

Tiempo de CPU consumido para procesamiento de solicitudes HTTP (durante los últimos 60 minutos), en segundos.

SQUID-MIB::cacheHttpMissSvcTime.1

HttpMissSvcTime1

Tiempo de CPU consumido para procesamiento de errores de la memoria caché (durante el último minuto), en segundos.

SQUID-MIB::cacheHttpMissSvcTime.5

HttpMissSvcTime5

Tiempo de CPU consumido para procesamiento de errores de la memoria caché (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheHttpMissSvcTime.60

HttpMissSvcTime60

Tiempo de CPU consumido para procesamiento de errores de la memoria caché (durante los últimos 60 minutos), en segundos.

SQUID-MIB::cacheHttpNmSvcTime.1

HttpNmSvcTime1

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (contenido no modificado) (durante el último minuto), en segundos.

SQUID-MIB::cacheHttpNmSvcTime.5

HttpNmSvcTime5

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (contenido no modificado) (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheHttpNmSvcTime.60

HttpNmSvcTime60

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (contenido no modificado) (durante los últimos 60 minutos), en segundos.

SQUID-MIB::cacheHttpHitSvcTime.1

HttpHitSvcTime1

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (durante el último minuto), en segundos.

SQUID-MIB::cacheHttpHitSvcTime.5

HttpHitSvcTime5

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheHttpHitSvcTime.60

HttpHitSvcTime60

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (durante los últimos 60 minutos), en segundos.

SQUID-MIB::cacheDnsSvcTime.1

DnsSvcTime1

Tiempo de CPU consumido para procesamiento de solicitudes DNS (durante el último minuto), en segundos.

SQUID-MIB::cacheDnsSvcTime.5

DnsSvcTime5

Tiempo de CPU consumido para procesamiento de solicitudes de DNS (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheDnsSvcTime.60

DnsSvcTime60

Tiempo de CPU consumido para procesamiento de solicitudes de DNS (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheRequestHitRatio.1

RequestHitRatio1

Las tasas de aciertos por solicitud (durante el último minuto), en porcentajes y en una escala de 0 a 100.

SQUID-MIB::cacheRequestHitRatio.5

RequestHitRatio5

Las tasas de aciertos por solicitud (durante 5 minutos), en porcentajes y en una escala de 0 a 100.

SQUID-MIB::cacheRequestHitRatio.60

RequestHitRatio60

Las tasas de aciertos por solicitud (durante los últimos 60 minutos), en porcentajes y en una escala de 0 a 100.

SQUID-MIB::cacheRequestByteRatio.1

RequestByteRatio1

Las tasas de aciertos por byte (durante el último minuto), en porcentajes y en una escala de 0 a 100.

SQUID-MIB::cacheRequestByteRatio.5

RequestByteRatio5

Las tasas de aciertos por byte (durante los últimos 5 minutos), en porcentajes y en una escala de 0 a 100.

SQUID-MIB::cacheRequestByteRatio.60

RequestByteRatio60

Las tasas de aciertos por byte (durante los últimos 60 minutos), en porcentajes y en una escala de 0 a 100.

SQUID-MIB::cacheHttpNhSvcTime.1

HttpNhSvcTime1

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (actualización de contenido) (durante el último minuto), en segundos.

SQUID-MIB::cacheHttpNhSvcTime.5

HttpNhSvcTime5

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (actualización de contenido) (durante los últimos 5 minutos), en segundos.

SQUID-MIB::cacheHttpNhSvcTime.60

HttpNhSvcTime60

Tiempo de CPU consumido para procesamiento de aciertos de la memoria caché (actualización de contenido) (durante los últimos 60 minutos), en segundos.

SQUID-MIB::cacheIpEntries

IpEntries

Entradas de IP en la memoria caché.

SQUID-MIB::cacheIpRequests

IpRequests

Número de solicitudes de IP en la memoria caché.

SQUID-MIB::cacheIpHits

IpHits

Número de aciertos de IP en la memoria caché.

SQUID-MIB::cacheIpPendingHits

IpPendingHits

Número de aciertos de IP pendientes en la memoria caché.

SQUID-MIB::cacheIpNegativeHits

IpNegativeHits

Número de aciertos de IP negativos en la memoria caché.

SQUID-MIB::cacheIpMisses

IpMisses

Número de errores de IP en la memoria caché.

SQUID-MIB::cacheBlockingGetHostByName

BlockingGetHostByName

Número de solicitudes gethostbyname de bloqueo.

SQUID-MIB::cacheAttemptReleaseLckEntries

AttemptReleaseLckEntries

Número de intentos de liberar entradas de IP en la memoria caché bloqueadas.

SQUID-MIB::cacheFqdnEntries

FqdnEntries

Entradas FQDN en la memoria caché.

SQUID-MIB::cacheFqdnRequests

FqdnRequests

Número de solicitudes FQDN en la memoria caché.

SQUID-MIB::cacheFqdnHits

FqdnHits

Número de aciertos FQDN en la memoria caché.

SQUID-MIB::cacheFqdnPendingHits

FqdnPendingHits

Número de aciertos FQDN pendientes en la memoria caché.

SQUID-MIB::cacheFqdnNegativeHits

FqdnNegativeHits

Número de aciertos FQDN negativos en la memoria caché.

SQUID-MIB::cacheFqdnMisses

FqdnMisses

Número de errores FQDN en la memoria caché.

SQUID-MIB::cacheBlockingGetHostByAddr

BlockingGetHostByAddr

Número de solicitudes gethostbyaddr de bloqueo.

SQUID-MIB::cacheDnsRequests

DnsRequests

Número de solicitudes dnsserver externas.

SQUID-MIB::cacheDnsReplies

DnsReplies

Número de respuestas dnsserver externas.

SQUID-MIB::cacheDnsNumberServers

DnsNumberServers

Número de procesos dnsserver externos.

SQUID-MIB::cachePeerRtt

PeerRtt

Duración del último recorrido de ida y vuelta conocido al otro punto (en ms).

Mensajes de error

En caso de error al iniciar el dispositivo, pueden aparecer los errores siguientes en el registro del sistema:

Mensaje de error

Descripción

Cache volume is not accessible.

El dispositivo no puede acceder al volumen de la memoria caché, posiblemente porque el sistema de archivos esté dañado.

Access log is enabled, but log terminal is not connected.

El terminal de registro no está conectado, pero log_enable se ha establecido en afirmativo.

Failed to run squid.

El dispositivo no se puede iniciar. El motivo puede ser un error en la configuración definida por el usuario.

Rendimiento

En la siguiente tabla se recogen los resultados de punto de referencia, especificados en las solicitudes por segundo (rps) y obtenidos con el registro activado. El rendimiento de SQUID puede verse mermado cuando se activa el registro. Se generaron puntos de referencia mediante la utilidad Apache Benchmark, que se incluye con las versiones 2.0 y 2.2 del servidor Web de Apache. Puede encontrar más información sobre Apache Benchmark en el sitio Web de Apache. Se han realizado pruebas de punto de referencia utilizando los siguientes valores de configuración: bw=500M mem=2G cpu=2.

Acierto de caché

Simultaneidad

sps

1 cliente simultáneamente

1.500-1.800 rps

10 clientes simultáneamente

5.800-6.200 rps

100 clientes simultáneamente

7.400-7.800 rps

500 clientes simultáneamente

5.300-5.500 sps

1.000 clientes simultáneamente

5.300-5.500 sps

Error de caché

Simultaneidad

sps

1 cliente simultáneamente

700-800 rps

10 clientes simultáneamente

2.000-2.200 rps

100 clientes simultáneamente

1.900-2.100 rps

500 clientes simultáneamente

1.800-2.000 rps

1.000 clientes simultáneamente

1.600-1.800 rps

Uso típico

Modo de acelerador Web

SQUID se utiliza para reducir la carga en un AppServer sirviendo todos los documentos estáticos. Nota: Si las aplicaciones Java establecen el encabezado Expires: HTTP para los documentos generados, SQUID los sirve durante todo su ciclo de vida.

Dispositivos en uso:

Ejemplo de configuración de las propiedades:

Nombre de la propiedad

Valor

Notas

mode

web_accelerator

SQUID funciona en modo de acelerador Web, actuando como un proxy inverso de almacenamiento en memoria caché.

listen_port

80

Puerto predeterminado para solicitudes HTTP.

hostname

www.host.com

Nombre de host utilizado en los mensajes de error.

Modo de acelerador Web: aplicación con muchos servidores Web

SQUID se utiliza para acelerar muchos servidores Web. En este ejemplo, un dispositivo URLSW distribuye solicitudes a servidores Web diferentes por URL. Dispositivos en uso:

Ejemplo de configuración de propiedad para SQUID:

Nombre de la propiedad

Valor

Notas

mode

web_accelerator

SQUID funciona en modo de acelerador Web, actuando como un proxy inverso de almacenamiento en memoria caché.

listen_port

80

Puerto predeterminado para solicitudes HTTP.

hostname

www.host1.com

Nombre de host utilizado en los mensajes de error.

Configuración de conmutador:

Nombre de la propiedad

Valor

Notas

out1_type

hostname

out1_value

host1.com

server1 sirve solicitudes para host1.com.

out2_type

hostname

out2_value

host2.com

server2 sirve solicitudes para host2.com.

out3_type

hostname

out3_value

host3.com

server3 sirve solicitudes para host3.com.

out4_type

hostname

out4_value

host4.com

server4 sirve solicitudes para host4.com.

Modo de proxy

Para de tareas de procesamiento de contenido, SQUID puede acelerar la captura de solicitudes duplicadas, reduciendo así la carga sobre los servidores Web de destino y el uso del ancho de banda. En este ejemplo, si crawler1 ya hubiera solicitado algún contenido de Internet, como por ejemplo una página Web, una imagen o un documento PDF, el resto de los indexadores recibirán resultados almacenados en caché para el mismo contenido.

Modo de proxy

Dispositivos en uso:

Ejemplo de configuración de las propiedades:

Nombre de la propiedad

Valor

Notas

mode

proxy

SQUID funciona en modo de proxy y actúa como un proxy de reenvío con almacenamiento en la memoria caché.

listen_port

3128

Puerto en el cual SQUID permanece a la escucha de solicitudes HTTP.

hostname

proxy.enterprise.local

Nombre de host utilizado en los mensajes de error.

Notas

Software de fuente abierta y de terceros utilizado dentro del dispositivo

SQUID utiliza los siguientes paquetes de fuente abierta de terceros, además de los paquetes de fuente abierta de terceros que utiliza su clase base LUX5.

Software

Versión

Modificado

Licencia

Notas

net-snmp

5.3.2.2-9.el5_5.1

No

BSD

N/D

net-snmp-libs

5.3.2.2-9.el5_5.1

No

BSD

N/D

net-snmp-utils

5.3.2.2-9.el5_5.1

No

BSD

N/D

samba-client

3.0.33-3.29.el5_5.1

No

GPLv2

N/D

samba-common

3.0.33-3.29.el5_5.1

No

GPLv2

N/D

libsmbclient

3.0.33-3.29.el5_5.1

No

GPLv2

N/D

squid

3.1.8-1.el5

No

GPLv2

N/D

lm_sensors

2.10.7-9.el5

No

GPLv2

N/D

dmidecode

2.10-3.el5

No

GPLv2

N/D

perl-DBI

1.52-2.el5

No

GPLv2

N/D